Page({
  data: {
    point: '',//小区名字
    building: '',//楼号
    room: '',//房间号
    name: '',//业主姓名
    gender: 0,//性别
    mobile: '',//手机号
    // 图片地址演示使用  身份证正反页
    idcardFrontUrl: '',
    idcardBackUrl: '',
  },
  onLoad({ id, point, building, room }) {
    // 如果跳转过来携带参数id，说明是修改房屋
    if (id) {
      // 修改页面的标题
      wx.setNavigationBarTitle({ title: '编辑房屋' })
      // 数据回填
      this.getDeatil(id)
    } else {
      // 新增房屋
      this.setData({
        // 对编译模式中文进行解码（不影响没有编码的参数）
        point: decodeURIComponent(point),
        building: decodeURIComponent(building),
        room
      })
    }
  },
  /**
   * 获取详情数据进行回显
   * @param {*} id 
   */
  async getDeatil(id) {
    const { data } = await wx.http.get(`/room/${id}`)
    this.setData({
      ...data
    })
  },
  /**
   * 上传图片
   */
  async uploadImg(e) {
    // 1、先调用选择图片api
    const res = await wx.chooseMedia({
      count: 1, // 只能选择1张图片
      mediaType: ['image'], // 只能选择图片类型
      sizeType: ['compressed'], // 默认为压缩模式
    })
    // console.log(res);
    //2、将选择的图片上传到服务器，上传文件的时候不能用封装的wx.http  用uploadFile
    wx.uploadFile({
      url: wx.baseURL + '/upload',//后台服务器的地址
      filePath: res.tempFiles[0].tempFilePath,
      name: 'file',
      header: {
        Authorization: getApp().token
      },
      success: (result) => {
        const img = JSON.parse(result.data)
        this.setData({
          [e.mark.type]: img.data.url
        })
      },
      fail: () => { },
      complete: () => { }
    });


  },
  /**
   * 点击审核
   * @returns 
   */
  async goList() {
    // 校验添加的房屋信息
    const { id, point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl } = this.data
    if (!/^[\u4e00-\u9fa5]{2,5}$/.test(name)) return wx.utils.toast('用户名为2-5位的中文！')
    if (!/^[1][3-8][0-9]{9}$/.test(mobile)) return wx.utils.toast('手机号格式错误！')
    if (!idcardFrontUrl || !idcardBackUrl) return wx.utils.toast('请上传身份证正反面！')
    console.log('校验通过，去调用后台接口')

    try {
      // 请求数据接口
      const apiData = { point, building, room, name, gender, mobile, idcardFrontUrl, idcardBackUrl }
      if (id) {
        // 如果有id，说明是修改，所有需要追加上id
        apiData.id = id
      }
      await wx.http.post('/room', apiData)
      setTimeout(() => {
        wx.utils.toast('添加房屋成功！')
      }, 1000)

      // 成功后跳转至房屋列表
      wx.reLaunch({
        url: '/house_pkg/pages/list/index',
      })
    } catch (error) {
      wx.utils.toast('添加房屋失败！')
    }
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark.type
    // 说明：如果修改变量是动态的，使用[属性名变量]
    this.setData({ [type]: '' })
  },
})
